接續著上篇的內容,這篇要介紹情境二、三~
javac_practice
|-Controller
    |--LinkPersonal.java
|-Model
    |--Personal.java
Personal.java
package Model;
public class Personal{
	private String name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}
LinkPersonal.java
package Controller;
import Model.Personal;
public class LinkPersonal {
  public static void main(String[] args){
      Personal personal = new Personal();
      personal.setName("王小明");
      System.out.print("名字:"+personal.getName());
  }
}
javac Controller/LinkPersonal.java
注意!!在LinkPersonal檔案中有使用到import
在編譯(javac)/運行(java)檔案時,務必在程式碼中可讀取import路徑的位置進行編譯
以我示範的案例中,我要在javac_practice那層資料夾,才可以進行編譯。
若我在不對的位置進行編譯,便會出現以下錯誤訊息:
範例:
Personal.class便是一起被編譯出來的檔案
java指令運行java Controller/LinkPersonal
或
java Controller.LinkPersonal
以上兩種寫法皆可運行
正常執行後,會出現在程式碼中賦予給Personal.name屬性的值打印出來
javac_practice
|-json.jar
|-Controller
    |--LinkPersonal.java
    |--UseJson.java
|-Model
    |--Personal.java
json.jar,我是從mvnrepository搜尋JSON後下載的,載下來後更改檔名。
UseJson.java
package Controller;
import Model.Personal;
import org.json.JSONObject;
public class UseJson{
  public static void main(String[] args) {
    Personal personal = new Personal();
    personal.setName("王小明");
    personal.setAge("18");
    JSONObject jsonObjectPersonal = new JSONObject(personal);
    System.out.println("personal物件內容為:"+jsonObjectPersonal);
  }
}
javac -cp .:json.jar Controller/UseJson.java
或
javac -classpath .:json.jar Controller/UseJson.java
在UseJson程式碼中引用到了第三方的jar,編譯(javac)時需加入-cp(-classpath)參數
官網的解釋如下
classpath:Specifies where to find user class files, and (optionally) annotation processors and source files. This class path overrides the user class path in the CLASSPATH environment variable. If neither CLASSPATH, -cp nor -classpath is specified, then the user class path is the current directory.
注意!!使用 cp 選項 一定要加 . 符號,這個表示當前路徑也在classpath 中,多個classpath 路徑 使用:符號分隔(windows環境 用;分隔);如果不加 . 當前路徑需要編譯的java檔案是尋找不到的會報錯。
我在這個地方也是踩了好大的一個坑,我一直沒有加上.![]()
就一直出現下圖的畫面...

java指令運行,也需要帶上cp參數java -cp .:json.jar Controller/UseJson
或
java -classpath .:json.jar Controller/UseJson

javac與java這兩個指令真的要好好學起來,當遇到需要原始程式碼丟失,又必須要維運code 的時候,這兩個指令就派上用場啦!!
下篇接著要來介紹的是javap反編譯工具